package cqrtplm.controller;

import com.hustcad.plm.pdm.enumeration.service.TyplmEnumerationItemService;
import com.ty.basic.entity.CTyEntityBaseDO;
import com.ty.basic.entity.IdentifierEntity;
import com.ty.basic.response.ResponseResult;
import cqrtplm.constant.RouteConstant;
import cqrtplm.dto.DspfStatusModuleitemsubDTO;
import cqrtplm.dto.RTAttributeCardDTO;
import cqrtplm.dto.RtCfgBOMAndStatusInfoDTO;
import cqrtplm.dto.RtCfgStatusDTO;
import cqrtplm.entity.DspfStatusModuleitemsubDO;
import cqrtplm.entity.RTAttributeCardDO;
import cqrtplm.mapper.DspfStatusModuleitemsubMapper;
import cqrtplm.mapper.RTAttributeCardMapper;
import cqrtplm.service.DspfStatusModuleitemsubService;
import cqrtplm.service.RTAttributeCardService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.math.BigInteger;

@RestController
@Api(tags = "状态需求模板-状态内容")
@RequestMapping(RouteConstant.DSPFSTATUSMODULEITEMSUB + "v1")
public class DspfStatusModuleitemsubController {
    @Resource
    private DspfStatusModuleitemsubService dspfStatusModuleitemsubService;
    @Resource
    private RTAttributeCardMapper rtAttributeCardMapper;
    @Resource
    DspfStatusModuleitemsubMapper dspfStatusModuleitemsubMapper;


    //获取需求状态模板右侧内容
    @PostMapping("/getByDspfStatusModuleitemsub")
    public ResponseResult getByDspfStatusModuleitemsub(@RequestBody DspfStatusModuleitemsubDO dspfStatusModuleitemsubDO) {
        return dspfStatusModuleitemsubService.getByDspfStatusModuleitemsub(dspfStatusModuleitemsubDO);
    }
    //保存需求状态模板右侧内容
    @PostMapping("/saveByDspfStatusModuleitemsub")
    public ResponseResult insertByDspfStatusModuleitemsub(@RequestBody DspfStatusModuleitemsubDTO dspfStatusModuleitemsubDTO) {
        return dspfStatusModuleitemsubService.insertByDspfStatusModuleitemsub(dspfStatusModuleitemsubDTO);
    }
    //修改需求状态模板右侧内容
    @PostMapping("/updateByDspfStatusModuleitemsub")
    public ResponseResult updateByDspfStatusModuleitemsub(@RequestBody DspfStatusModuleitemsubDTO dspfStatusModuleitemsubDTO) {
        return dspfStatusModuleitemsubService.updateByDspfStatusModuleitemsub(dspfStatusModuleitemsubDTO);
    }

    //获取字典编码
    @PostMapping("/getDictionaryNumberByOid")
    public ResponseResult getDictionaryNumberByOid() {
        return dspfStatusModuleitemsubService.getDictionaryNumberByName();
    }

    //获取产品类别
    @GetMapping("/getProductClass")
    public ResponseResult getProductClass() {
        return dspfStatusModuleitemsubService.getProductClass();
    }

    //获取零部件编码
    @GetMapping("/getPartNumberByOid")
    public ResponseResult getPartNumberByOid(String name) {
        return ResponseResult.success(rtAttributeCardMapper.queryProjectLine(name));
    }

    //根据零部件编码获取扩展属性
    @PostMapping("/getExtendAttributeByPartNumber")
    public ResponseResult getExtendAttributeByPartNumber(@RequestBody RTAttributeCardDTO rtAttributeCardDO) {
        return dspfStatusModuleitemsubService.getExtendAttributeByRTAttributeCardDO(rtAttributeCardDO);
    }

    /**
     * 根据开发令和机型获取相关模板下的物料描述的描述编码和名称
     * @param rtCfgStatusDTO
     * @return
     */
    @PostMapping("/getStatusModuleitemsubList")
    public ResponseResult getStatusModuleitemsubList(@RequestBody RtCfgStatusDTO rtCfgStatusDTO){
        return dspfStatusModuleitemsubService.getStatusModuleitemsubList(rtCfgStatusDTO);
    }
}
